﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;

public partial class Admin_EditProduct : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!(Roles.IsUserInRole("Admin")))
        {
            Response.Redirect("~/Admin/login.aspx");
        }
        if (Request.Form["act"] == null)
        {
            string act = "";
            int page = 1;
            int objId = 0;
            if (Request.QueryString["act"] != null)
                act = Request.QueryString["act"].ToString();
            if (Request.QueryString["id"] != null)
                objId = Convert.ToInt32(Request.QueryString["id"].ToString());
            if (Request.QueryString["Page"] != null)
                page = Convert.ToInt32(Request.QueryString["Page"].ToString());

            if (act == "" || objId <= 0) Response.Redirect("ProductManager.aspx?Page=" + page);
            NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();
            TaiLieu objInfo = new TaiLieu();
            if (act != "" && objId > 0)
            {
                if (act == "view")
                {
                    TenTaiLieuTextBox.Enabled = false;
                    GiaTextBox.Enabled = false;
                    SoLuongTextBox.Enabled = false;
                    HinhTextBox.Enabled = false;
                    MoTaTextBox.Enabled = false;
                    LinkTextBox.Enabled = false;
                    KichThuocTextBox.Enabled = false;
                    DanhMucComboBox.Enabled = false;
                    LuotXemTextBox.Enabled = false;
                    LuotMuaTextBox.Enabled = false;
                    NgayTaoTextBox.Enabled = false;
                    TinhNangComboBox.Enabled = false;
                    TrangThaiComboBox.Enabled = false;
                    btnCapNhat.Visible = false;
                    NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.information, "Thông tin chi tiết");
                }
                if ((from ob in db.TaiLieus
                     where ob.ProductID.Equals(objId)
                     select ob).Count() > 0)
                {
                    objInfo = (from ob in db.TaiLieus
                           where ob.ProductID.Equals(objId)
                           select ob).Single();
                  
                    MaTaiLieuLabel.Text = objInfo.ProductID.ToString();                    

                    if (objInfo.ProductName != null)
                        TenTaiLieuTextBox.Text = objInfo.ProductName;
                    else
                        TenTaiLieuTextBox.Text = "";

                    if (objInfo.ProductPrice != null)
                        GiaTextBox.Text = objInfo.ProductPrice.ToString();
                    else
                        GiaTextBox.Text = "";

                    if (objInfo.ProductQuantity != null)
                        SoLuongTextBox.Text = objInfo.ProductQuantity.ToString();
                    else
                        SoLuongTextBox.Text = "";

                    if (objInfo.ProductPhotoURL != null)
                        HinhTextBox.Text= objInfo.ProductPhotoURL.ToString();
                    else
                        HinhTextBox.Text = "";

                    if (objInfo.ProductDescription != null)
                    {
                        MoTaTextBox.Text = objInfo.ProductDescription;
                    }                    

                    if (objInfo.ProductPath != null)
                        LinkTextBox.Text = objInfo.ProductPath.ToString();
                    else
                        LinkTextBox.Text = "";

                    if (objInfo.Dimension != null)
                        KichThuocTextBox.Text = objInfo.Dimension.ToString();
                    else
                        KichThuocTextBox.Text = "";

                    DanhMucComboBox.DataSource = db.DanhMucs.ToList();
                    DanhMucComboBox.DataValueField = "CatID";
                    DanhMucComboBox.DataTextField = "CatName";
                    DanhMucComboBox.DataBind();
                    DanhMucComboBox.SelectedValue = objInfo.CatID.ToString();

                    if (objInfo.NumsView != null)
                        LuotXemTextBox.Text = objInfo.NumsView.ToString();
                    else
                        LuotXemTextBox.Text = "";

                    if (objInfo.NumsBuy != null)
                        LuotMuaTextBox.Text = objInfo.NumsBuy.ToString();
                    else
                        LuotMuaTextBox.Text = "";

                    if (objInfo.DateAdd != null)
                        NgayTaoTextBox.Text = objInfo.DateAdd.ToString();
                    else
                        NgayTaoTextBox.Text = "";

                    
                    TinhNangComboBox.SelectedValue = objInfo.Feature.ToString();

                    TrangThaiComboBox.SelectedValue = objInfo.State.ToString();
                   


                }
            }
            
        }
        else
        {
            if (InValidateForm() == false && Request.Form["act"] != null)
            {
                NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();
                var objQuery = (from obj in db.TaiLieus
                                where obj.ProductID.Equals(MaTaiLieuLabel.Text.Trim())
                                select obj).Single();

                objQuery.ProductName = TenTaiLieuTextBox.Text.Trim();
                objQuery.ProductPrice = Convert.ToDouble(GiaTextBox.Text.Trim());
                objQuery.ProductQuantity = Convert.ToInt32(SoLuongTextBox.Text.Trim());
                objQuery.ProductPhotoURL = HinhTextBox.Text.Trim();
                objQuery.ProductDescription = MoTaTextBox.Text.Trim();
                objQuery.ProductPath = LinkTextBox.Text.Trim();
                objQuery.Dimension = KichThuocTextBox.Text.Trim();
                objQuery.CatID = DanhMucComboBox.SelectedValue;
                objQuery.NumsView = Convert.ToInt32(LuotXemTextBox.Text.Trim());
                objQuery.NumsBuy = Convert.ToInt32(LuotMuaTextBox.Text.Trim());
                objQuery.DateAdd = Convert.ToDateTime(NgayTaoTextBox.Text.Trim());
                objQuery.Feature = Convert.ToInt32(TinhNangComboBox.SelectedValue.Trim());
                objQuery.State = Convert.ToInt32(TrangThaiComboBox.SelectedValue.Trim());              

                db.SubmitChanges();
               NotificationMessage.InnerHtml =NotificationHelper.SetNotification(NotificationHelper.Notification.success,string.Format("Thông tin tài liệu <strong>{0}</strong> đã được cập nhật thành công.", objQuery.ProductID));
            }
        }
    }


    public bool InValidateForm()
    {
        bool error = false;

        if (MaTaiLieuLabel.Text.Trim() == "")
            error = true;
        if (TenTaiLieuTextBox.Text == "")
        {           
            ErrorTenTaiLieuTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
            ErrorTenTaiLieuTextBox.InnerHtml = "";



        if (GiaTextBox.Text == "")
        {           
            ErrorGiaTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
        {
            double gia = 0.0;
            bool isGia = double.TryParse(GiaTextBox.Text.Trim(), out gia);

            if (isGia)
            {
                if (gia <= 0)
                {
                    ErrorGiaTextBox.InnerHtml = "Giá phải lớn hơn 0";
                    error = true;
                }
                else
                    ErrorGiaTextBox.InnerHtml = "";
            }
            else
            {
                ErrorGiaTextBox.InnerHtml = "Giá phải là số.";
                error = true;
            }
        }

        if (SoLuongTextBox.Text == "")
        {           
            ErrorSoLuongTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
        {
            int soLuong = 0;
            bool isSoLuong= int.TryParse(SoLuongTextBox.Text.Trim(), out soLuong);
            if (isSoLuong)
            {
                if (soLuong < 0)
                {
                    ErrorSoLuongTextBox.InnerHtml = "Số lượng không được nhỏ hơn 0.";
                    error = true;
                }else
                     ErrorSoLuongTextBox.InnerHtml = "";
            }
            else
            {
                ErrorSoLuongTextBox.InnerHtml = "Số lượng phải là số.";
                error = true;
            }
        }


        if (LuotMuaTextBox.Text != "")
        {
            int soLuong = 0;
            bool isSoLuong = int.TryParse(SoLuongTextBox.Text.Trim(), out soLuong);
            if (isSoLuong)
            {
                int luotMua = 0;
                bool isLuotMua = int.TryParse(LuotMuaTextBox.Text.Trim(), out luotMua);
                if (isLuotMua)
                {
                    if (soLuong < luotMua) {
                        ErrorLuotMuaTextBox.InnerHtml = "Lượt mua phải nhỏ hơn hoặc bằng số lượng hiện có.";
                        error = true;
                    }else
                        ErrorLuotMuaTextBox.InnerHtml = "";
                }
                else
                {
                    ErrorLuotMuaTextBox.InnerHtml = "Lượt mua phải là số.";
                    error = true;
                }
            }

           
        }


        if (HinhTextBox.Text == "")
        {           
            ErrorHinh.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
            ErrorHinh.InnerHtml = "";

        if (LinkTextBox.Text == "")
        {            
            ErrorLinkTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
        {
            if (!LinkTextBox.Text.StartsWith("http://") && !LinkTextBox.Text.StartsWith("ftp://")
                && !LinkTextBox.Text.StartsWith("https://") && !LinkTextBox.Text.StartsWith("ftps://")) {                   
                    ErrorLinkTextBox.InnerHtml = "Link tài liệu không hợp lệ.(http:// hoặc ftp:// hoặc https:// hoặc ftps://)";
                    error = true;
            }else
                ErrorLinkTextBox.InnerHtml = "";
        }
        
       
        if (error)
            NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.error, "Bạn hãy kiểm tra lại các thông tin lỗi.");


        return error;
    }


}